package exercises.leetcode;

/**
 * <a href="https://leetcode-cn.com/problems/sum-of-two-integers/">
 * 371. 两整数之和</a>
 *
 * <p><span color="#87CEEB">描述:</span>
 * 给你两个整数 a 和 b ，不使用 运算符 + 和 - ​​​​​​​，计算并返回两整数之和。
 * <p>
 *  
 * <p>
 * 示例 1：
 * <p>
 * 输入：a = 1, b = 2
 * 输出：3
 * <p>
 * 示例 2：
 * <p>
 * 输入：a = 2, b = 3
 * 输出：5
 *  
 * <p>
 * 提示：
 * <p>
 * -1000 <= a, b <= 1000
 *
 * @author or2
 * @date 2021年09月26日 时间: 8:03
 */
public class No371 {
    public int getSum(int a, int b) {
        for (int carry; b != 0; ) {
            carry = (a & b) << 1;
            a ^= b;
            b = carry;
        }

        return a;
    }
}
